Technical Field
This disclosure relates generally to computer processing and more specifically to dependency resolution between different single-instruction-multiple-data (SIMD) pipelines.
Description of the Related Art
Graphics processing units (GPUs) typically operate on large amounts of graphics data in parallel using multiple execution pipelines or shaders. Graphics programs may include certain sequences of instructions that occur frequently. One common sequence involves an interpolation operation that generates texture coordinates followed by a sample operation to read the texture based on the coordinates. In this situation, the sample is dependent on the result of the interpolation. In other situations, interpolation results may not be destined for use in a sample operation. It may be desirable to use different pipelines to process different types of instructions, complicating dependency checking Complex circuitry to handle instruction dependencies (e.g., using register renaming techniques) may consume processor area and consume considerable power. This may be problematic in mobile graphics applications where a battery is a power source. Other techniques for handling dependencies, such as fence instructions, may reduce performance.